// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Sekrety Fortuny Czekają Bizzo casino bonus za rejestrację – Twój klucz do ekscytującej przygody i po – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Sekrety Fortuny Czekają: Bizzo casino bonus za rejestrację – Twój klucz do ekscytującej przygody i potężnych wygranych w świecie kasyna online.

W świecie hazardu online, gdzie wybór kasyn jest ogromny, znalezienie tego idealnego miejsca do gry może być wyzwaniem. Bizzo casino bonus za rejestrację oferuje wyjątkową propozycję dla nowych graczy, otwierając drzwi do fascynującej przygody pełnej emocji i potencjalnych wygranych. Ten artykuł przeprowadzi Cię przez szczegółową analizę oferty Bizzo Casino, omawiając nie tylko bonus powitalny, ale także inne aspekty, które czynią to kasyno wyjątkowym.

Przygotuj się na zanurzenie w świat kasynowych nowości, ekscytujących gier i atrakcyjnych promocji. Zrozumiesz, dlaczego Bizzo Casino zyskało tak dużą popularność wśród miłośników hazardu online i jak możesz skorzystać z jego oferty, aby zmaksymalizować swoje szanse na wygraną.

Czym jest Bizzo Casino i dlaczego warto je wybrać?

Bizzo Casino to stosunkowo nowe kasyno online, które szybko zyskało uznanie wśród graczy dzięki szerokiej gamie gier, atrakcyjnym bonusom i profesjonalnej obsłudze klienta. Platforma operuje na licencji, co gwarantuje bezpieczeństwo i uczciwość gry. Oferta kasyna obejmuje sloty, gry stołowe, kasyno na żywo, a także wiele innych atrakcji. To kasyno wyróżnia się innowacyjnym podejściem do promocji i regularnym wprowadzaniem nowości, co sprawia, że gra nigdy nie staje się nudna.

Bezpieczeństwo i licencja Bizzo Casino

Bezpieczeństwo graczy jest dla Bizzo Casino priorytetem. Kasyno stosuje zaawansowane technologie szyfrowania, aby chronić dane osobowe i finansowe użytkowników. Posiadanie licencji zapewnia również wysoki standard gier i uczciwość wypłat. Gracze mogą więc być spokojni, wiedząc, że ich gra odbywa się w bezpiecznym i regulowanym środowisku. Bizzo Casino regularnie poddawane jest audytom przez niezależne firmy, co potwierdza jego transparentność i uczciwość.

Szeroki wybór gier od renomowanych dostawców

Bizzo Casino współpracuje z czołowymi dostawcami oprogramowania kasynowego, takimi jak NetEnt, Play’n GO, Microgaming i Evolution Gaming. Dzięki temu gracze mają dostęp do setek gier, w tym popularnych slotów, klasycznych gier stołowych, takich jak ruletka, blackjack i poker, a także emocjonującego kasyna na żywo, gdzie mogą grać z prawdziwymi krupierami. Regularnie dodawane są nowe gry, aby zapewnić graczom zawsze świeżą i ekscytującą ofertę.

Szczegółowa analiza bonusu powitalnego Bizzo Casino

Bizzo casino bonus za rejestrację to jeden z głównych magnesów przyciągających nowych graczy. Zazwyczaj obejmuje on kilka etapów, oferując bonusy od pierwszych wpłat. Ważne jest, aby dokładnie zapoznać się z warunkami obrotu, aby móc w pełni skorzystać z tej propozycji.

Etap bonusu Procent bonusu Maksymalna kwota bonusu Warunek obrotu
Pierwsza wpłata 100% Do 500 PLN 40x kwota bonusu
Druga wpłata 50% Do 500 PLN 40x kwota bonusu
Trzecia wpłata 50% Do 500 PLN 40x kwota bonusu

Inne atrakcyjne promocje i program lojalnościowy

Bizzo Casino nie ogranicza się tylko do bonusu powitalnego. Kasyno oferuje szereg innych promocji, takich jak darmowe spiny, turnieje, loterie i cashback. Regularnie organizowane są również specjalne promocje z okazji świąt i innych wydarzeń. Ponadto, kasyno oferuje program lojalnościowy, w ramach którego gracze mogą zdobywać punkty za grę i wymieniać je na atrakcyjne nagrody.

Promocje cotygodniowe i miesięczne

Bizzo Casino regularnie zaskakuje graczy nowymi promocjami. Cotygodniowe i miesięczne oferty obejmują bonusy depozytowe, darmowe spiny na wybrane sloty, a także możliwość wygrania atrakcyjnych nagród w losowaniach i turniejach. Gracze powinni regularnie sprawdzać zakładkę “Promocje” na stronie kasyna, aby być na bieżąco z najnowszymi ofertami.

Program VIP – korzyści dla lojalnych graczy

Program VIP w Bizzo Casino to doskonały sposób na nagradzanie lojalnych graczy. Im więcej grasz, tym wyższy poziom VIP osiągasz, a wraz z nim rosną korzyści, takie jak wyższe limity wypłat, indywidualne bonusy, dostęp do ekskluzywnych promocji i osobisty menedżer konta. Program VIP to idealna opcja dla graczy, którzy regularnie grają w Bizzo Casino i chcą czerpać jeszcze większe korzyści ze swojej gry.

Metody płatności i wypłat w Bizzo Casino

Bizzo Casino oferuje szeroki wybór metod płatności, w tym karty kredytowe, e-portfele, przelewy bankowe i kryptowaluty. Wpłaty są zazwyczaj przetwarzane natychmiastowo, a wypłaty realizowane są w szybkim tempie. Wybór metody płatności zależy od preferencji gracza. Kasyno dba o bezpieczeństwo transakcji, stosując zaawansowane technologie szyfrowania.

  • Karty kredytowe (Visa, Mastercard)
  • E-portfele (Skrill, Neteller)
  • Przelewy bankowe
  • Kryptowaluty (Bitcoin, Ethereum, Litecoin)

Obsługa klienta w Bizzo Casino

Bizzo Casino oferuje profesjonalną i pomocną obsługę klienta, dostępną 24/7. Gracze mogą skontaktować się z obsługą klienta za pośrednictwem czatu na żywo, poczty e-mail lub telefonu. Czas odpowiedzi jest zazwyczaj bardzo krótki, a konsultanci są dobrze przeszkoleni i potrafią udzielić pomocy w rozwiązywaniu wszelkich problemów.

  1. Czat na żywo – najszybszy sposób na rozwiązanie problemów
  2. Poczta e-mail – idealna do wysyłania bardziej szczegółowych zapytań
  3. Sekcja FAQ – odpowiedź na najczęściej zadawane pytania

Podsumowanie: Czy Bizzo Casino to dobry wybór dla Ciebie?

Bizzo Casino to kasyno online, które oferuje szeroki wybór gier, atrakcyjne bonusy i profesjonalną obsługę klienta. Bonus za rejestrację to świetny sposób na rozpoczęcie przygody z tym kasynem, a regularne promocje i program lojalnościowy zapewniają dodatkowe korzyści dla lojalnych graczy. Dzięki bezpiecznym metodom płatności i szybkiej obsłudze wypłat, Bizzo Casino jest doskonałym wyborem dla wszystkich miłośników hazardu online.

Jeśli szukasz kasyna, które oferuje emocjonującą grę, atrakcyjne bonusy i profesjonalne wsparcie, Bizzo Casino z pewnością spełni Twoje oczekiwania.

Design and Develop by Ovatheme